Printers are common peripheral devices attached to computers. A printer allows a computer user to make a hard copy of documents that are created in a variety of applications and programs on a computer. To function properly, a channel of communication is established (e.g., via a network connection) between the printer and the computer to enable the printer to receive commands and information from the host computer.
Once a connection is established between a workstation and the printer, printing software is implemented at a print server to manage a print job from order entry and management through the complete printing process. The printing software may simultaneously manage in excess of thousands of print jobs that have been spooled (or queued) for production. Each of these print jobs may include a voluminous number (e.g., five hundred) of print files, including text and other resources, which are combined to produce the print job. Moreover, each of these print files may have been received from different entities. As a result, there is a likelihood that the printing software will encounter resources from different print files that have the same name, but with differing data. Such conflicting resources must be resolved prior to printing the print job.
Current systems rename all resources with conflicting names regardless of whether the resources have identical data. However, such a method is not efficient since it requires unnecessary resource processing, especially considering that a print job may include several hundred print files, many of which having in excess of two gigabytes of data.
Accordingly, a mechanism to efficiently resolve resource conflicts in large print jobs is desired.